home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Snippets / Files / GetVInfo / Source / PBHGetVInfo.c
Encoding:
Text File  |  1996-09-17  |  3.9 KB  |  118 lines  |  [TEXT/CWIE]

  1. //
  2. // MPW Tool by im.
  3. // Usage : PBHGetVInfo [-i index] [-v volumeName:] [-r vRefNum]
  4. // 
  5.  
  6. #include    <Files.h>
  7. #include    <stdio.h>
  8. #include    <StdLib.h>
  9. #include    <string.h>
  10. #include    <strings.h>
  11. #include    <Quickdraw.h>
  12. #include    <TextUtils.h>
  13.  
  14. HParamBlockRec    pb;
  15. Str255            volName;
  16.  
  17. void main (int argc, char *argv[], char *envp[]) {
  18. #pragma unused (envp)
  19.     
  20.         auto    OSErr    osErr;
  21.         auto    short    index;
  22.         auto    char    *option, *parameter;
  23.         auto    Str255    string;
  24.         
  25.         InitGraf(&qd.thePort);
  26.  
  27.         pb.volumeParam.ioNamePtr        = volName;
  28.         pb.volumeParam.ioVRefNum        = 0;
  29.         pb.volumeParam.ioVolIndex        = 0;
  30.  
  31.         index = 1;
  32.         while (index < argc) {
  33.         
  34.             option = argv[index++];
  35.             parameter = argv[index++];
  36.             
  37.             if ('-' != option[0] || (! strchr("ivr", option[1])) || index > argc) {
  38.                 printf("PBHGetVInfo [-i index] [-v volumeName:] [-r vRefNum]\n");
  39.                 exit(1);
  40.             } else {
  41.                 switch (option[1]) {
  42.                     case 'i' :
  43.                         sscanf(parameter, "%hd", &pb.volumeParam.ioVolIndex);
  44.                         break;
  45.                     case 'v' :
  46.                         parameter = (char *) c2pstr(parameter);
  47.                         pb.volumeParam.ioNamePtr = (StringPtr) parameter;
  48.                         break;
  49.                     case 'r' :
  50.                         sscanf(parameter, "%hd", &pb.volumeParam.ioVRefNum);
  51.                         break;
  52.                         break;
  53.                 }
  54.             }            
  55.         }
  56.         
  57.     //    printf("ioNamePtr        = %P\n",    pb.volumeParam.ioNamePtr);
  58.     //    printf("ioVRefNum        = %hd\n",     pb.volumeParam.ioVRefNum);
  59.     //    printf("ioVolIndex        = %hd\n",     pb.volumeParam.ioVolIndex);
  60.         
  61.         osErr = PBHGetVInfoAsync(&pb);
  62.         
  63.         if (noErr != osErr) {
  64.             printf("osErr            = %d\n",    osErr);
  65.         } else {
  66.             printf("ioResult        = %hd\n",    pb.volumeParam.ioResult);
  67.             printf("ioNamePtr        = %P\n",    pb.volumeParam.ioNamePtr);
  68.             printf("ioVRefNum        = %hd\n",     pb.volumeParam.ioVRefNum);
  69.             
  70.             printf("ioVolIndex        = %hd\n",     pb.volumeParam.ioVolIndex);
  71.             
  72.             IUDateString(pb.volumeParam.ioVCrDate, shortDate, string);
  73.             printf("ioVCrDate        = %P  ",     string);
  74.             IUTimeString(pb.volumeParam.ioVCrDate, false, string);
  75.             printf("%P\n",     string);
  76.             
  77.             IUDateString(pb.volumeParam.ioVLsMod, shortDate, string);
  78.             printf("ioVLsMod        = %P  ", string);
  79.             IUTimeString(pb.volumeParam.ioVLsMod, false, string);
  80.             printf("%P\n",     string);
  81.             
  82.             printf("ioVAtrb            = %hd\n",     pb.volumeParam.ioVAtrb);
  83.             printf("ioVNmFls        = %hu\n",     pb.volumeParam.ioVNmFls);
  84.             printf("ioVBitMap        = %hd\n",     pb.volumeParam.ioVBitMap);
  85.             printf("ioAllocPtr        = %hd\n",     pb.volumeParam.ioAllocPtr);
  86.             printf("ioVNmAlBlks        = %hu\n",     pb.volumeParam.ioVNmAlBlks);
  87.             printf("ioVAlBlkSiz        = %ld\n",     pb.volumeParam.ioVAlBlkSiz);
  88.             printf("ioVClpSiz        = %ld\n",     pb.volumeParam.ioVClpSiz);
  89.             printf("ioAlBlSt        = %hd\n",     pb.volumeParam.ioAlBlSt);
  90.             printf("ioVNxtCNID        = %ld\n",     pb.volumeParam.ioVNxtCNID);
  91.             printf("ioVFrBlk        = %hu\n",     pb.volumeParam.ioVFrBlk);
  92.             
  93.             printf("ioVSigWord        = %hu\n",     pb.volumeParam.ioVSigWord);
  94.             printf("ioVDrvInfo        = %hd\n",     pb.volumeParam.ioVDrvInfo);
  95.             printf("ioVDRefNum        = %hd\n",     pb.volumeParam.ioVDRefNum);
  96.             printf("ioVFSID            = %hd\n",     pb.volumeParam.ioVFSID);
  97.             
  98.             IUDateString(pb.volumeParam.ioVBkUp, shortDate, string);
  99.             printf("ioVBkUp            = %P  ", string);
  100.             IUTimeString(pb.volumeParam.ioVBkUp, false, string);
  101.             printf("%P\n",     string);
  102.  
  103.             printf("ioVSeqNum        = %hu\n",     pb.volumeParam.ioVSeqNum);
  104.             printf("ioVWrCnt        = %ld\n",     pb.volumeParam.ioVWrCnt);
  105.             printf("ioVFilCnt        = %ld\n",     pb.volumeParam.ioVFilCnt);
  106.             printf("ioVDirCnt        = %ld\n",     pb.volumeParam.ioVDirCnt);
  107.             
  108.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[0]);
  109.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[1]);
  110.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[2]);
  111.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[3]);
  112.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[4]);
  113.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[5]);
  114.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[6]);
  115.             printf("ioVFndrInfo[0]    = %ld\n",     pb.volumeParam.ioVFndrInfo[7]);
  116.         }
  117. }
  118.